SIMT processors choose which instruction to execute almost every SIMT cycle. Each instruction identifies the resources that it requires, and when those resources are available the instruction becomes a candidate for execution. At each SIMT cycle a potentially different group of threads are selected to execute.